package main

func main() {

	//结构体
	type 类型名 struct {
		成员属性1 类型1
		成员属性2 类型2
		成员属性3, 成员属性4 类型3
		....
	}


	//语法糖
	变量名 := new(类型名)

	//匿名结构体
	变量名 := struct {
		//定义成员属性
	}{ //初始化成员属性}


	//结构体匿名字段
	type 类型名 struct {
		类型1
		类型2
		类型3
	}

	变量名 := 类型名{10,"10",true}

	变量名.int
	变量名.string
	变量名.bool


	//结构体嵌套
	type 类型名1 struct {
		成员属性1 类型1
		成员属性2 类型2
	}
	type 类型名2 struct {
		成员属性3 类型3
		成员属性4 *类型名1
	}
	变量名 := 类型名2{}
	变量名.成员属性4.成员属性1 = "xxx"
	变量名.成员属性4.成员属性2 = "xxx"


	//结构体继承
	type 类型名1 struct {
		成员属性1 类型1
		成员属性2 类型2
	}
	type 类型名2 struct {
		类型名1
		成员属性4 类型名4
	}
	变量名 := 类型名2{类型名1{"xxx","yyy"},"zzz"}

	//结构体方法
	func (接受者变量 接受者类型名) 方法名(参数列表) (返回值列表) {
	   //方法体
	}
}
